#pragma once
#include <dsp/types.h>

const dsp::complex_t CHROMA_BANDPASS[123] = {
    { -0.000007675039564594f, -0.000017362992335168f },
    {  0.000050180791439308f, -0.000005054021864311f },
    { -0.000022529111707761f,  0.000102942513429095f },
    { -0.000157609487484146f, -0.000092618697641464f },
    {  0.000205649042029007f, -0.000181710515677257f },
    {  0.000143445458895462f,  0.000331994546004200f },
    { -0.000414693079508517f,  0.000038265188132615f },
    {  0.000090081630021837f, -0.000395731646002122f },
    {  0.000257705918065856f,  0.000154354504676150f },
    { -0.000064051192147575f,  0.000055648228186439f },
    {  0.000089938060647145f,  0.000213032074676941f },
    { -0.000604775098099200f,  0.000050706635726124f },
    {  0.000223309865890358f, -0.000944433958755193f },
    {  0.001049943574694384f,  0.000640863688898729f },
    { -0.000983491651119595f,  0.000840133365053179f },
    { -0.000417178588714773f, -0.001011686459999295f },
    {  0.000616677332283103f, -0.000046513429902547f },
    {  0.000018549463752019f, -0.000075619948809012f },
    {  0.000734408386201158f,  0.000456742966201638f },
    { -0.001192460562555901f,  0.001001510577200253f },
    { -0.000729137747758392f, -0.001811046261815935f },
    {  0.001878272869910273f, -0.000125879189667096f },
    { -0.000312873903977849f,  0.001230889889574772f },
    { -0.000142534831707354f, -0.000090307321579771f },
    { -0.000942796972567241f,  0.000778470227412111f },
    { -0.000945381510920278f, -0.002406055808135091f },
    {  0.003537159230775561f, -0.000207350791625892f },
    { -0.000956199555190230f,  0.003634225577771235f },
    { -0.002543835202533561f, -0.001641705037372486f },
    {  0.001064108471592447f, -0.000863770138941644f },
    { -0.000335799601479829f, -0.000876091753216939f },
    {  0.003390761989356699f, -0.000170321604912419f },
    { -0.001408130728751909f,  0.005175554625981795f },
    { -0.005203055300834108f, -0.003419861284250694f },
    {  0.004342719678657084f, -0.003465264906764298f },
    {  0.001143432997855297f,  0.003059520699490539f },
    {  0.000304096484476364f, -0.000012725974706621f },
    { -0.001193870642975282f,  0.004247469277548632f },
    { -0.006681021498855877f, -0.004471771356204969f },
    {  0.007965721969864534f, -0.006247895626072559f },
    {  0.003365883969059717f,  0.009241201835481184f },
    { -0.006835562188141396f,  0.000228798228738161f },
    {  0.000409900284971528f, -0.001412838961851673f },
    { -0.004331406608345981f, -0.002951876085350234f },
    {  0.009290089917766562f, -0.007161958719089258f },
    {  0.005418326020709935f,  0.015272361365960607f },
    { -0.017077565432843410f,  0.000428641984774326f },
    {  0.003850771342644978f, -0.012869517593577566f },
    {  0.004380859690202961f,  0.003039552423897447f },
    {  0.004761181766399753f, -0.003607421240356480f },
    {  0.005926935731028822f,  0.017160134858844222f },
    { -0.028153584885925551f,  0.000471042980325370f },
    {  0.009655944938035437f, -0.031314555422639050f },
    {  0.023930146568136038f,  0.016901617811072800f },
    { -0.012998853255109976f,  0.009678807314399702f },
    {  0.002043176559434885f,  0.006079907699564680f },
    { -0.036686455817128191f,  0.000306882557812233f },
    {  0.021529138474771701f, -0.067800343150283604f },
    {  0.085421344938160879f,  0.061409588050754214f },
    { -0.108166660998898100f,  0.079141989828113088f },
    { -0.047617308971534079f, -0.145721049254261960f },
    {  0.160079041453427080f, -0.000000000000000427f },
    { -0.047617308971533295f,  0.145721049254262240f },
    { -0.108166660998898530f, -0.079141989828112505f },
    {  0.085421344938160546f, -0.061409588050754672f },
    {  0.021529138474772065f,  0.067800343150283493f },
    { -0.036686455817128191f, -0.000306882557812037f },
    {  0.002043176559434853f, -0.006079907699564691f },
    { -0.012998853255110026f, -0.009678807314399631f },
    {  0.023930146568135951f, -0.016901617811072928f },
    {  0.009655944938035604f,  0.031314555422638994f },
    { -0.028153584885925554f, -0.000471042980325220f },
    {  0.005926935731028730f, -0.017160134858844253f },
    {  0.004761181766399772f,  0.003607421240356455f },
    {  0.004380859690202943f, -0.003039552423897470f },
    {  0.003850771342645046f,  0.012869517593577545f },
    { -0.017077565432843413f, -0.000428641984774235f },
    {  0.005418326020709854f, -0.015272361365960637f },
    {  0.009290089917766600f,  0.007161958719089209f },
    { -0.004331406608345964f,  0.002951876085350257f },
    {  0.000409900284971536f,  0.001412838961851670f },
    { -0.006835562188141398f, -0.000228798228738125f },
    {  0.003365883969059667f, -0.009241201835481201f },
    {  0.007965721969864567f,  0.006247895626072517f },
    { -0.006681021498855855f,  0.004471771356205005f },
    { -0.001193870642975304f, -0.004247469277548626f },
    {  0.000304096484476364f,  0.000012725974706619f },
    {  0.001143432997855281f, -0.003059520699490545f },
    {  0.004342719678657102f,  0.003465264906764274f },
    { -0.005203055300834089f,  0.003419861284250722f },
    { -0.001408130728751936f, -0.005175554625981787f },
    {  0.003390761989356700f,  0.000170321604912401f },
    { -0.000335799601479825f,  0.000876091753216940f },
    {  0.001064108471592452f,  0.000863770138941638f },
    { -0.002543835202533552f,  0.001641705037372499f },
    { -0.000956199555190250f, -0.003634225577771230f },
    {  0.003537159230775563f,  0.000207350791625874f },
    { -0.000945381510920265f,  0.002406055808135096f },
    { -0.000942796972567245f, -0.000778470227412106f },
    { -0.000142534831707354f,  0.000090307321579771f },
    { -0.000312873903977856f, -0.001230889889574770f },
    {  0.001878272869910274f,  0.000125879189667086f },
    { -0.000729137747758382f,  0.001811046261815939f },
    { -0.001192460562555906f, -0.001001510577200246f },
    {  0.000734408386201156f, -0.000456742966201642f },
    {  0.000018549463752019f,  0.000075619948809012f },
    {  0.000616677332283103f,  0.000046513429902543f },
    { -0.000417178588714767f,  0.001011686459999298f },
    { -0.000983491651119600f, -0.000840133365053174f },
    {  0.001049943574694380f, -0.000640863688898734f },
    {  0.000223309865890363f,  0.000944433958755192f },
    { -0.000604775098099200f, -0.000050706635726121f },
    {  0.000089938060647144f, -0.000213032074676941f },
    { -0.000064051192147576f, -0.000055648228186438f },
    {  0.000257705918065856f, -0.000154354504676151f },
    {  0.000090081630021839f,  0.000395731646002121f },
    { -0.000414693079508517f, -0.000038265188132613f },
    {  0.000143445458895461f, -0.000331994546004200f },
    {  0.000205649042029008f,  0.000181710515677256f },
    { -0.000157609487484145f,  0.000092618697641465f },
    { -0.000022529111707761f, -0.000102942513429094f },
    {  0.000050180791439308f,  0.000005054021864311f },
    { -0.000007675039564594f,  0.000017362992335168f }
};

#define CHROMA_BANDPASS_SIZE    (sizeof(CHROMA_BANDPASS)/sizeof(dsp::complex_t))
#define CHROMA_BANDPASS_DELAY   (CHROMA_BANDPASS_SIZE/2)